import { useDayjs } from '#dayjs'

const dayjs = useDayjs()

// 获取当前设备型号
function getDevice() {
  return navigator.userAgent
}

// 获取当前浏览器版本
function getBrowserInfo() {
  const UserAgent = navigator.userAgent.toLowerCase()
  const browserInfo = {}
  const browserArray = {
    IE: window.ActiveXObject || 'ActiveXObject' in window,
    Chrome: UserAgent.indexOf('chrome') > -1 && UserAgent.indexOf('safari') > -1,
    Firefox: UserAgent.indexOf('firefox') > -1,
    Opera: UserAgent.indexOf('opera') > -1,
    Safari: UserAgent.indexOf('safari') > -1 && UserAgent.indexOf('chrome') === -1,
    Edge: UserAgent.indexOf('edge') > -1,
    QQBrowser: /qqbrowser/.test(UserAgent),
    WeixinBrowser: /MicroMessenger/i.test(UserAgent)
  }
  for (let i in browserArray) {
    if (browserArray[i]) {
      let versions = ''
      if (i === 'IE') {
        versions = UserAgent.match(/(msie\s|trident.*rv:)([\w.]+)/)[2]
      } else if (i === 'Chrome') {
        for (const mt in navigator.mimeTypes) {
          if (navigator.mimeTypes[mt].type === 'application/360softmgrplugin') {
            i = '360'
          }
        }
        versions = UserAgent.match(/chrome\/([\d.]+)/)[1]
      } else if (i === 'Firefox') {
        versions = UserAgent.match(/firefox\/([\d.]+)/)[1]
      } else if (i === 'Opera') {
        versions = UserAgent.match(/opera\/([\d.]+)/)[1]
      } else if (i === 'Safari') {
        versions = UserAgent.match(/safari\/([\d.]+)/)[1]
      } else if (i === 'Edge') {
        versions = UserAgent.match(/edge\/([\d.]+)/)[1]
      } else if (i === 'QQBrowser') {
        versions = UserAgent.match(/qqbrowser\/([\d.]+)/)[1]
      }
      browserInfo.type = i
      browserInfo.versions = Number.parseInt(versions)
    }
  }
  return browserInfo
}

// 浏览量事件
export function pageViewsTrack() {
  return {
    域名: location.origin,
    访问IP: '',
    访问国家: '',
    访问省: '',
    访问城市: '',
    设备型号: getDevice(),
    操作系统: '',
    访问时间: dayjs().format('YYYY-MM-DD HH:mm:ss')
  }
}

// 下载按钮点击事件
export function downloadTrack() {
  return {
    域名: location.origin,
    访问IP: '',
    访问国家: '',
    访问省: '',
    访问城市: '',
    设备型号: getDevice(),
    操作系统: '',
    下载时间: dayjs().format('YYYY-MM-DD HH:mm:ss')
  }
}

// 请求下载地址状态
export function downloadSuccessTrack() {
  return {
    域名: location.origin,
    访问IP: '',
    访问国家: '',
    访问省: '',
    访问城市: '',
    设备型号: getDevice(),
    操作系统: '',
    下载时间: dayjs().format('YYYY-MM-DD HH:mm:ss'),
    浏览器标识: getBrowserInfo().type,
    浏览器: getBrowserInfo().type,
    浏览器版本: getBrowserInfo().versions
  }
}

// 联系客服点击
export function serviceTrack() {
  return {
    域名: location.origin,
    访问IP: '',
    访问国家: '',
    访问省: '',
    访问城市: '',
    设备型号: getDevice(),
    操作系统: '',
    访问时间: dayjs().format('YYYY-MM-DD HH:mm:ss')
  }
}
